# coding=utf-8
import pandas as pd
import numpy as np

file_path = "./csv/starbucks_store_worldwide.csv"

df = pd.read_csv(file_path)
# print("1--", df.head(1))
# print("2--", df.info())
grouped = df.groupby(by="Country") # 按国家分组
# print("3--", grouped)

'''
grouped是一个DataFrameGroupBy对象，是可迭代的
grouped中的每一个元素是一个元组
元组里面是（索引(分组的值)，分组之后的DataFrame）
'''

#DataFrameGroupBy 可以进行遍历 调用聚合方法
# 按国家来分组
# for i,j in grouped: # grouped的值是一个元组，第一个值i按国家分组出来的国家，第二个值j就是DataFrameGroupBy，分组后国家数据
#     print(i)
#     print("-"*100)
#     print(j,type(j)) # type(j) 告诉j是什么类型的
#     print("*"*100)
# df[df["Country"]="US"] # 得到美国的数值
#调用聚合方法

# country_count = grouped["Brand"].count() # 统计个数
# print("4--", country_count["US"])
# print("5--", country_count["CN"])

# ---- 以上 03数据分组聚合的代码  ----

#统计中国每个省店铺的数量
china_data = df[df["Country"] =="CN"] # 得到中国的数值

grouped = china_data.groupby(by="State/Province").count()["Brand"] # Province 省份 Brand 品牌

# print("6-- ", grouped)

#数据按照多个条件进行分组,返回Series
# grouped = df["Brand"].groupby(by=[df["Country"],df["State/Province"]]).count()
# print(grouped)
# print(type(grouped)) # Series
#
# #数据按照多个条件进行分组,返回DataFrame
grouped1 = df[["Brand"]].groupby(by=[df["Country"],df["State/Province"]]).count() # ["Brand"] 加了[]取多列
# grouped2= df.groupby(by=[df["Country"],df["State/Province"]])[["Brand"]].count()
# grouped3 = df.groupby(by=[df["Country"],df["State/Province"]]).count()[["Brand"]] # 1 2 3 写法是一样的
#
# print(grouped1,type(grouped1))
# print("*"*100)
# print(grouped2,type(grouped2))
# print("*"*100)
#
# print(grouped3,type(grouped3))
#
# #索引的方法和属性
print(grouped1.index)
